// Analyse.h: interface for the CAnalyse class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_ANALYSE_H__B9204ED8_4D73_4E1B_9600_06C099EA9ACA__INCLUDED_)
#define AFX_ANALYSE_H__B9204ED8_4D73_4E1B_9600_06C099EA9ACA__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

struct KeyWord
{
	char keyName[20];
	int  index;
};
class CAnalyse  
{
	CString m_strCode;
	int m_Index;
	char m_Char;
	CString m_strToken;
	//char m_Token[20];
protected:
	int IsKeyword(CString str);
	void GetNextChar();
    void GetBC();
	void Concat();
	int IsLetter();
	int IsDigit();
	int Reserve();
	void Retract();
public:
	int GetCodeLength();
	int GetIndex();
	
	void SetIndex( int index);
	void Run(CString strFileName);
	void Pretreatment2();
	void Run();
	void Pretreatment1( );
	int Analyze(int index);
	void Debug();
	CAnalyse(CString str);
	CAnalyse();
	virtual ~CAnalyse();

};

#endif // !defined(AFX_ANALYSE_H__B9204ED8_4D73_4E1B_9600_06C099EA9ACA__INCLUDED_)
